home *** CD-ROM | disk | FTP | other *** search
/ Columbia Kermit / kermit.zip / newsgroups / misc.20000114-20000217 / 000080_news@columbia.edu _Wed Jan 19 00:26:15 2000.msg < prev    next >
Internet Message Format  |  2020-01-01  |  15KB

  1. Return-Path: <news@columbia.edu>
  2. Received: from newsmaster.cc.columbia.edu (newsmaster.cc.columbia.edu [128.59.59.30])
  3.     by watsun.cc.columbia.edu (8.8.5/8.8.5) with ESMTP id AAA04930
  4.     for <kermit.misc@watsun.cc.columbia.edu>; Wed, 19 Jan 2000 00:26:14 -0500 (EST)
  5. Received: (from news@localhost)
  6.     by newsmaster.cc.columbia.edu (8.8.5/8.8.5) id AAA21926
  7.     for kermit.misc@watsun.cc.columbia.edu; Wed, 19 Jan 2000 00:04:54 -0500 (EST)
  8. X-Authentication-Warning: newsmaster.cc.columbia.edu: news set sender to <news> using -f
  9. From: jaltman@watsun.cc.columbia.edu (Jeffrey Altman)
  10. Subject: Re: MS-DOS Kermit, more capabalities
  11. Date: 19 Jan 2000 05:04:53 GMT
  12. Organization: Columbia University
  13. Message-ID: <863gll$ld3$1@newsmaster.cc.columbia.edu>
  14. To: kermit.misc@columbia.edu
  15.  
  16. In article <VU7h4.9208$NU6.400327@tw12.nn.bcandid.com>,
  17.  <cangel@famvid.com> wrote:
  18. [discussion of Michael as a wonderful person and macro programming 
  19.  genius deleted]
  20.  
  21. Michael may be a fantastic macro programmer.  But I do not have
  22. the time to be a consultant to everyone that chooses to send me
  23. several hundred lines of Kermit script.
  24.  
  25.  
  26. [discussion of broken mail programs deleted]
  27.  
  28. If the mail programs are broken then it would make the most sense
  29. to put the energy into fixing them.  Not trying to twist MS-DOS Kermit
  30. into something it was not designed to be; even if it can be made to do
  31. it.
  32.  
  33. :     I  would  be  curious  to  see  that.  I  use public access LYNX
  34. :     (because  it  includes  a very good implementation of the kermit
  35. :     transfer) to browse websites when using MSK. 
  36.  
  37. The Kermit implementation that Lynx uses is C-Kermit.  It does not
  38. have its own independent kermit implementation.  It simply takes
  39. advantage of the work that has already been put into C-Kermit in
  40. much the same way that we advise BBS operators to take advantage of
  41. the work that has been put into MS-DOS Kermit.
  42.  
  43. :     It is the same for Michel, a form of entertainment. 
  44.  
  45. : JD> I  have  no plans of touching zmodem file transfer material.
  46. : JD> It  is a different universe to construct and that would both
  47. : JD> bloat  MSK  and  make life confusing to users because of the
  48. : JD> much different command sets. 
  49. :     Millions do manage both. 8) 
  50.  
  51. What does this fact have to do with the situation at hand?
  52. Professor Doupnik is the one that has to support the end users of 
  53. MS-DOS Kermit.  He does not want to have to suupport the users that
  54. will become confused.  That is his choice.
  55.  
  56. [a lot of other extraneous arguments deleted]
  57.  
  58. :     What  is  _needed_ is no more nor less than K95 user _need_. K95
  59. :     needs  zmodem  and kermit, MSK needs the same. People are people
  60. :     even if they aren't cororate managers with cute titles. 
  61.  
  62. I am going to try to explain the history of Kermit 95 in some greater
  63. detail with the hope that people will stop trying to compare MS-DOS
  64. Kermit and Kermit 95.
  65.  
  66. Kermit 95 is a commercial product which was not derived from stolen 
  67. code (as has been implied by Michael.)  K95 is the successor to
  68. the OS/2 version of C-Kermit 5A(191) which was the work of myself 
  69. and Kai Uwe Rommel.  At the time C-Kermit for OS/2 was introduced
  70. it did not have a Zmodem library.  Nor did I have any interest in 
  71. writing one.  
  72.  
  73. It is interesting to remember that at the time people were jealous of
  74. the fact that people could take MS-DOS Kermit and be able to perform
  75. Zmodem transfers using DSZ.  Jyrki Salmi was a student working part
  76. time on an OS/2 BBS for which he was recommending K2 as the client.
  77. Since Omen Technologies did not have a Zmodem implementation for 
  78. OS/2 and wanted a large sum of money to license the source code, Jyrki
  79. wrote his own Zmodem library which he called P.  P was designed like
  80. DSZ to be run as a subprocess and be passed the file handle for the
  81. communications device.  This worked fine when most people were using
  82. Kermit to dial the calls, but it did no good when they wanted Zmodem
  83. for other types of connections (LAT, TCP/IP, NetBIOS) that K2 supported.
  84.  
  85. There was something very important to note about P.  P was released as
  86. two parts: a DLL which implemented the Zmodem protocol and an EXE
  87. front end which handled the i/o.  While the source code to the EXE was
  88. released to the world with Jyrki's copyright he never released the
  89. source code to the DLL.  This was following the same policy that I had
  90. for the K2 source code.  I released binaries to the world but never
  91. released the source code.  Why?  Because in all the years that I was
  92. working on porting Kermit to 32-bit OS/2, developing terminal
  93. emulations, and implementing communications methods, no one (other
  94. than Kai Uwe Rommel) ever offered to lend a hand.
  95.  
  96. When I was hired by the Kermit Project to develop a version of Kermit
  97. for the forthcoming Windows 95 operating system Jyrki and I made a deal.  
  98. The result of the agreement was that the Kermit Project would receive
  99. the source code and a license to port it to Win32, but we did not have
  100. a license to release the source code to the public.  The copyright 
  101. would remain with him (or whoever he chose to sell it to.)
  102.  
  103. When I said that I put Zmodem into Kermit 95 I meant it.  Not only did
  104. I port P to Win32, but I integrated the P API into K95 so that its i/o
  105. mechanisms would be used instead of those designed by Jyrki.  When
  106. Professor Doupnik says that adding Zmodem to Telnet and integrating it
  107. with the Kermit notions of file collisions, window sizes, resend
  108. capabilities, file logging, control character prefixing, ... is not a
  109. trivial matter, he is not kidding.  How do I know?  Because I've
  110. already done it once and I had the benefit of using one of the cleanest
  111. Zmodem APIs I have ever seen.  Jyrki did a fantastic job.
  112.  
  113. At first I thought that all I would do is enable the protocol to be
  114. switched to Zmodem instead of Kermit, and then when a file transfer
  115. took place I could just funnel things through the P DLL.  Sounds easy
  116. but we quickly ran into problems.  
  117.  
  118. Not all telnet servers use a Telnet connection as an NVT.  Some use 
  119. Binary mode in one direction or both.  It is necessary for the file
  120. transfer engine to know about these modes and be able to toggle quoting
  121. on the fly.  The i/o needs to be able to bypass the file transfer
  122. midstream to handle incoming telnet option negotiations.  And to make 
  123. matters worse, unlike the Unix and VMS worlds, the BBS implementors
  124. apparently did as bad a job of reading the Telnet RFCs as they did
  125. reading the Kermit protocol specifications.  In many cases they made
  126. significant mistakes.  One prominent one is the negotiation of telnet
  127. binary mode in one direction or the other, but using it in both.  We
  128. were forced to implement workarounds for this because unlike Kermit
  129. protocol Zmodem did not provide for selective quoting of control
  130. characters because it was designed for 8-bit clean connections.
  131.  
  132. When P was an external add-on for K2 users understood that they would
  133. not get file transfer logging, attribute preservation, file transfer
  134. selectivity, the ability to script transfers, etc.  However, once
  135. P was integrated into K95 that changed.  Now users wanted every feature
  136. that Kermit protocol had to be supported for Zmodem.  Performing 
  137. this integration took over a year.  The result of which allowed us
  138. to support external Zmodem processes as inline file transfer methods
  139. not only in Kermit 95 but in C-Kermit as well.
  140.  
  141. The points to take from this are as follows:
  142.  
  143. . The integration of Zmodem into Kermit when the API has already
  144.   been written and the language is C, not assembler, is a non-trivial
  145.   undertaking if you are going to do it correctly.
  146.  
  147. . Performing Zmodem file transfers as an external add-on over a raw
  148.   TCP/IP connection is possible; over Telnet it requires that there
  149.   been a tight couplling between the Zmodem engine and the Telnet 
  150.   engine such that using an external process to handle the Zmodem
  151.   will not work reliably in the very environment which you wish to
  152.   use it.
  153.  
  154. . The Zmodem library which is built into Kermit 95 was not developed
  155.   by the Kermit Project, and its use is governed by the copyright
  156.   holder.  Even if we were at liberty to integrate it into MS-DOS 
  157.   Kermit, and Professor Doupnik had the time and desire to do so,
  158.   we would not be able to distribute the source code.  MS-DOS Kermit
  159.   is distributed as a binary for the convenience of those without
  160.   the necessary development tools, but its primary means of distribution
  161.   is in source form.  The P library could not be distributed as a 
  162.   part of MS-DOS Kermit.
  163.  
  164. . I, as the sole author of Kermit 95, have the privilege of deciding what
  165.   features go into it just as Professor Doupnik has the privilege
  166.   of deciding what work will be done to MS-DOS Kermit.  When some
  167.   one comes asks us to implement a feature we evaluate the feature
  168.   and determine
  169.  
  170.     (a) if we personally need the feature;
  171.  
  172.     (b) how much fun it would be to implement; 
  173.  
  174.     (c) how much time it would take;
  175.  
  176.     (d) how much support we will need to provide for it after it
  177.         is implemented; and
  178.  
  179.     (e) whether it would break backwards compatibility
  180.   
  181.   Then we decide whether it is something we want to do.  
  182.  
  183. The Zmodem question has been asked so many times over the last 15
  184. years that somebody who just walks into this forum and says "Why
  185. don't you implement Zmodem" might interpret the negative response
  186. as a knee jerk response.  It isn't.  We have 20 years of experience
  187. developing and supporting communications packages that implement
  188. the Kermit protocol.  Unlike most other open source products, Kermit
  189. has had not just community based support but also a dedicated 
  190. group made up of the authors of the software, as well as paid
  191. telephone helpdesk support.  When users can't get something to 
  192. work with their communications software they usually do not have
  193. the option of sending an e-mail.  Instead they pick up the phone.
  194. For the last twenty years we have been there to develop the software
  195. and answer the phone.  To get some idea of what most of our users
  196. think of the support we provide please review 
  197.  
  198.   http://www.columbia.edu/kermit/tsreviews.html
  199.  
  200. The point that I have tried to make in previous postings about
  201. somebody other than Professor Doupnik developing the Zmodem 
  202. implementation and donating it back to the Kermit community
  203. is to address item (c).  If someone comes to us and says "kermit
  204. is a great program.  I've used it to do so many things but it
  205. just couldn't do this one thing, so I implemented it.  Could you
  206. add it to the next release?"  We are going to have a very different
  207. reaction than somebody who we have never heard of before telling
  208. us what we should do, how easy it would be to do, and why we
  209. are jerks for saying "sorry, but no."
  210.  
  211. :     It's  really  too bad you didn't use this "transport layer blob"
  212. :     phraseology  with the author of WATTCP long ago. I'm certain the
  213. :     outcome  of your joint venture would have been different than it
  214. :     has  been  and  we  wouldn't be having this conversation at all.
  215. :     Have a nice day. 
  216.  
  217. The separation of the WATTCP and MS-DOS Kermit code is ancient
  218. history.  It is improper to look at the decisions that were made in
  219. 1991 given the changes that have occurred in the last nine years.
  220.  
  221. This is beginning to remind me of the recent arguments that have taken
  222. place in the open source crypto community over how Netscape sold their
  223. soul to the devil when they chose RSA's patented public key
  224. certificates over the currently unpatented D-H based DSA algorithems.
  225. At the time the decisions were made very few people had experience
  226. with DSA and both RSA and D-H algorithms were patented.  The fact that
  227. the D-H patent was expiring approximately two years before RSA was not
  228. a significant concern compared to the trust people had in RSA and the
  229. lower computational requirements that RSA imposed.
  230.  
  231. The reality is that given the circumstances at the time, decisions 
  232. were made.  To try to make the case that things woulld be different 
  233. if only some person had known better is a waste of time.  
  234.  
  235. Jeffrey Altman
  236. Senior Software Designer
  237. The Kermit Project
  238.  
  239. P.S.  The reason that I refer to Professor Joe Doupnik as Professor
  240. Doupnik in my postings is as a sign of respect.  Professor Doupnik
  241. was developing MS-DOS Kermit when I first entered college.  I used
  242. MS-DOS Kermit throughout my college years as it was distributed to
  243. just about everybody at a college campus in the United States that
  244. needed remote dialup (and then later network) access.  
  245.  
  246. I've never met Professor Doupnik and when we first started conversing
  247. about MS-DOS Kermit in the late 80s I was still an undergrad.  So
  248. my relationship with him was as a Professor to a student.  Even if he
  249. wasn't a faculty member at the University I attended.
  250.  
  251. My exposure to Kermit was as a user of MS-DOS Kermit so I could work
  252. from my dorm room late at night instead of from the labs.  I then
  253. became a beta tester and a contributor of automated install scripts.
  254.  
  255. When 32-bit OS/2 was released I founded the first U.S. OS/2 user's
  256. group and promptly started to work on a version of Kermit for that
  257. platform.  Kai Uwe Rommel had already implemented a version for 16-bit
  258. OS/2 but did not have the time to work on a full 32-bit port nor
  259. to flesh out the terminal emulator, integrate it with the OS/2
  260. Workplace Shell, the clipboard, add mouse support, etc.  So I took
  261. over responsibility.  
  262.  
  263. P.P.S. Kermit 95 and a lot of C-Kermit 7.0 are the result of my hard
  264. work.  Someone asked how much code there is: Unix C-Kermit is
  265. approxmately 225,000 lines of C.  Kermit 95 has an additional 125,000
  266. lines not including any of the external utilities that we ship such as
  267. the K95 Dialer front end.  In addition to this are 44,000 lines of
  268. documentation which are supplements to the 700 page "Using C-Kermit"
  269. book.
  270.  
  271. P.P.P.S. As for Michael's comments that I should be a politician 
  272. because of my work on Standards bodies, I will take that as a compliment.
  273. The Internet is an engineering nightmare that is built on standards.
  274. The fact that you can make a TCP/IP from New York to Stockholm,
  275. negotiate a terminal type, authenticate your self to the host and vice
  276. versa, privatize the data stream with a negotiated encryption algorithm
  277. and a secret key, and then transfer a file across the session is not
  278. entirely an accident.  It is possible because 2000 engineers volunteer
  279. their time to meet three times a year, debate the merits of submitted
  280. protocols, and prove their cases with implementations.  A large part
  281. of this process is political because that is how a democratic group
  282. negotiates an agreement that everyone can live with.
  283.  
  284.  
  285.  
  286.  
  287.  
  288.  
  289.  
  290.  
  291.     Jeffrey Altman * Sr.Software Designer * Kermit-95 for Win32 and OS/2
  292.                  The Kermit Project * Columbia University
  293.               612 West 115th St #716 * New York, NY * 10025
  294.   http://www.kermit-project.org/k95.html * kermit-support@kermit-project.org